import java.util.ArrayList;
import java.util.List;

public class Main {

    /**
     * 1.ABC三个线程交替打印ABCBABC...
     * 2.写代码实现字符串转32位有符号整数,小数点四舍五入
     * 3.给你一个字符串s和一个字符串p，请问最少去掉s中的多少个字符，才能使得p是s的子串呢？如s="axb",p="ab"，输出：11.ABC三个线程交替打印ABCBABC...
     * 2.写代码实现字符串转32位有符号整数,小数点四舍五入
     * 3.给你一个字符串s和一个字符串p，请问最少去掉s中的多少个字符，才能使得p是s的子串呢？如s="axb",p="ab"，输出：1
     */


    /**
     * 1.ABC三个线程交替打印ABCBABC...
     * 2.写代码实现字符串转32位有符号整数,小数点四舍五入
     * 3.给你一个字符串s和一个字符串p，请问最少去掉s中的多少个字符，才能使得p是s的子串呢？如s="axb",p="ab"，输出：1
     */


    public static void main(String[] args) {

//        ExecutorService executorService = Executors.newFixedThreadPool(3);
//        Thread thread = new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("ABCBABC...");
//            }
//        });
//
//        thread.start();

        String s = "axb";
        String p = "ab";
        System.out.println(getDeleteChar(s,p));

    }

    private static int getDeleteChar(String s, String p) {

        char[] charsS = s.toCharArray();
        char[] charsP = p.toCharArray();


        List<List<Integer>> doubleList = new ArrayList<>();



        for (int i = 0; i < charsP.length; i++) {
            List<Integer> apperanceIndex = new ArrayList<Integer>();

            for (int j = 0; j < charsS.length; j++) {
                if (charsS[j] == charsP[i]) {
                    apperanceIndex.add(j);
                }
            }
            doubleList.add(apperanceIndex);

        }

        int deleteCount = 0;


        for (int i = doubleList.size()-1; i > 0; i--) {
           int deleteDelta =  doubleList.get(i).get(0) - doubleList.get(i - 1).get(0)-1;
            deleteCount += deleteDelta;
        }


        return deleteCount;



    }
}
